package com.seednia.foundation.framework.dto.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;


/**
 * Annotation that indicates that the field is indexable
 * 
 * @author Young Suk Ahn
 *
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface IndexableField {
	
	public static enum Store {
		YES, NO, COMRESSED
	}
	
	public static enum Index {
		ANALYZED, ANALYZED_NO_NORMS, NO, NOT_ANALYZED, NOT_ANAYZED_NO_NORMS
	}

	public Store store() default Store.YES;
	public Index index() default Index.ANALYZED;
	
	// The name of the index field, if not present, is same as the JavaBeans' property name
	public String fieldName() default "" ; 
	
	// Query operator either OR or AND (default OR)
	public String queryOp() default "OR";
	
	// Query operator either OR or AND (default OR)
	public float queryBoost() default 1.0f;
	
}
